AWS IAM Identity Center(AWS SSO)のユーザーを使ってEC2(Windows)へRDPしてみた
はじめに
以前のアップデートでAWS Systems Manager Fleet Manager(以後Fleet Manager)を使ってマネージメントコンソールからWindowsインスタンスにRDP接続できるようになりました。
この機能を使ったログイン方法としてIAM Identity Centerユーザーのシングルサインオン方法が以下AWSブログで紹介されていたので試してみました。
マルチアカウント環境ではAWS IAM Identity Center(以後IAM Identity Center)を使ってユーザー管理しているケースが多いかと思います。EC2へのRDPのみを行わせたい…みたいな要件がある時は是非参考にしてみてください。
仕組み
アーキテクチャは以下の通りです。
※AWS SSOでAmazon EC2 Windowsインスタンスへのセキュアでシームレスなシングルサインオンを可能にする方法 | Amazon Web Services ブログより引用
IAM Identity Centerのアクセス許可セットでFleet Managerを使ったログインを許可します。 Fleet ManagerからWindowsインスタンスへログインすると、ローカルのWindowsユーザーアカウントとクレデンシャルを作成し、インスタンスへのサインインを自動化します。
この動作は内部的にはSSMドキュメントのAWSSSO-CreateSSOUserによって実現されているようです。ドキュメント自体はマネージメントコンソールから確認できます。
やってみる
実際にログインまでやってみます。
以下の手順で実施します。
- IAM Identity Centerアクセス許可セット作成
- グループの作成とアクセス許可セットを割り当て
- EC2へログイン
前提条件
- AWS OrganizationsでIAM Identity Centerを利用している環境
- Fleet Manager管理のWindowsインスタンスが対象アカウントにある
IAM Identity Centerアクセス許可セット作成
IAM Identity Centerの管理アカウントにログインして、ログイン用の許可セットを作成していきます。ここで利用するポリシーはAWSブログ記載の最小権限で実施します。
コンソールを開いて、許可セット > 許可セットを作成をクリックします。
許可セットタイプはカスタム許可セットを選択します。
インラインポリシーをクリックすると、ポリシーの入力欄が出てくるのでここから確認できるポリシーを貼り付けてください。
次に許可セットの詳細入力は許可セット名を入力して進みます。ここではSsoLoginPermissionSet
にしました。
問題なければ作成してください。
グループの作成とアクセス許可セットを割り当て
次にグループを作成して先ほど作成したアクセス許可セットを割り当てます。
グループ名を入力して、所属させたいユーザーを選択して作成しましょう。
次に左のナビゲーションからAWS アカウントを開きます。OU構成に従ったアカウントのリストが出てくるので、Fleet ManagerでログインしたいEC2があるアカウントにチェックを入れて、ユーザーまたはグループの割り当て
をクリックします。
割り当て画面に飛ぶので、先ほど作成したグループを選択して次へ進みます。
次に許可セットの割り当て画面に飛ぶので、ここでも先ほど作成した許可セットを選択します。
選択したグループと許可セットを確認して、問題なければ送信を押しましょう。新しいIAMロールが対象のアカウントに作成されます。
EC2ログイン
ここからはログイン対象のEC2があるアカウントで作業します。
SSOのログイン画面からSsoLoginPermissionSet
のマネージメントコンソールでログインします。
ログインできたらSystems Managerのコンソールを開いて、フリートマネージャー
を開きます。
Fleet Manager管理になっているEC2の一覧が出るので、ログインしたいEC2を選択してノードアクションからリモートデスクトップ(RDP)接続
を選択します。
遷移先の画面にシングルサインオンの項目があるので、選択してConnectをクリックしましょう。
しばらくすると、セットアップが完了し以下ログインが完了しました!
以上でIAM Identity Centerのユーザーを活用したWindowsインスタンスへのシングルサインオンは完了です。
おわりに
AWSブログの通りに実施してみましたが、IAM Identity Centerを触っている人であれば特に難しい場所もなくRDPまでできました。 今回は最小権限で実施したため、個別のアクセス許可セットとグループを作成しましたが、試したいだけであればAWSAdministratorAccessManagementなどの幅広い権限で実施してみてもいいですね。
マルチアカウント環境でRDP接続が発生するケースも多いと思いますので、是非活用してみてください。